#include "common.h"
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int main(){
  //1.先生产独有的key用来做共享内存的标识
  key_t key = ftok(pathname,proj_id);
  //2.向系统生产一块共享内存
  int shm_id = shmget(key,4096,IPC_CREAT|0644); //可以跟上对这块内存的使用权限
  //3.将该内存映射到进程的地址空间上
  char* buf = (char*)shmat(shm_id,NULL,0);

  //4.从该内存中读入数据
  char str[256];
  int count = 0;
  while(count<5){
    strcpy(str+(count*(strlen(buf)+1)),buf+(count*(strlen(buf)+1)));
    printf("server read from memory:%s\n",str+((strlen(buf)+1)*count));
    ++count; //因为共享内存没有同步机制，这个是为了保持同步的一种手段
    sleep(1);
  }
  //5.解绑该内存与进程的映射关系
  shmdt(buf);
  shmctl(shm_id,IPC_RMID,NULL);
  printf("server read done!\n");
  return 0;
}
